package chapter13.section4;

/*程序13-3：利用ResuletSet对象的方法实现向数据表中插入记录*/

import java.sql.*;
import java.util.Scanner;
import java.util.UUID;

public class InsertDemo {
    public static void main(String[] args) {
        String url = " jdbc:mysql://localhost:3306/bank?user=root&password =123456 ";
        Connection con = null;
        try {
            con = DriverManager.getConnection(url);// 建立数据库连接
//创建一个结果集类型为可更新和滚动的Statement对象
            Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
            UUID uuid = null;// 用于生成通用唯一标识符的类
            Scanner sc = new Scanner(System.in);
            // 通过指定一个不可能的条件获得一个没有记录的结果集，减少传输量
            ResultSet rs = stmt.executeQuery("select id,name,balance from tb_account where id is null");
            for (int i = 1; i <= 2; i++) {
                // 首先利用Scanner实例，通过键盘输入开户人姓名和开户金额
                System.out.println("开户人姓名：");
                String name = sc.next();
                System.out.println("开户金额(整数)：");
                int balance = sc.nextInt();
                // 利用UUID生成一个128位的UUID的值，作为新纪录的关键字
                uuid = UUID.randomUUID();
                rs.moveToInsertRow();// 定位插入行位置，然后更新每个字段的值
                rs.updateString("id", uuid.toString());
                rs.updateNString("name", name);
                rs.updateInt("balance", balance);
                rs.insertRow();// 将插入行的内容插入到此 ResultSet 对象和数据库
            }
            rs.close();
            stmt.close();
            con.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}